{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Tce3stUlHN0L"
      },
      "source": [
        "##### Copyright 2025 Google LLC."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "cellView": "form",
        "id": "tuOe1ymfHZPu"
      },
      "outputs": [],
      "source": [
        "# @title Licensed under the Apache License, Version 2.0 (the \"License\");\n",
        "# you may not use this file except in compliance with the License.\n",
        "# You may obtain a copy of the License at\n",
        "#\n",
        "# https://www.apache.org/licenses/LICENSE-2.0\n",
        "#\n",
        "# Unless required by applicable law or agreed to in writing, software\n",
        "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
        "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
        "# See the License for the specific language governing permissions and\n",
        "# limitations under the License."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "xmzgQqBasA0v"
      },
      "source": [
        "# Gemini API: Prompting Quickstart with REST\n",
        "\n",
        "<a target=\"_blank\" href=\"https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/rest/Prompting_REST.ipynb\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" height=30/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "265f8066d5d5"
      },
      "source": [
        "If you want to quickly try out the Gemini API, you can use `curl` commands to call the methods in the REST API.\n",
        "\n",
        "This notebook contains `curl` commands you can run in Google Colab, or copy to your terminal.\n",
        "\n",
        "To run this notebook, your API key must be stored it in a Colab Secret named GOOGLE_API_KEY. If you are running in a different environment, you can store your key in an environment variable. See [Authentication](https://github.com/google-gemini/cookbook/blob/main/quickstarts/Authentication.ipynb) to learn more."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "GgaOvPo_r2SB"
      },
      "outputs": [],
      "source": [
        "import os\n",
        "from google.colab import userdata"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "-PqX1RI_sjoV"
      },
      "outputs": [],
      "source": [
        "os.environ['GOOGLE_API_KEY'] = userdata.get('GOOGLE_API_KEY')"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "9WjnnMbysntU"
      },
      "source": [
        "## Run your first prompt\n",
        "\n",
        "Use the `generateContent` method to generate responses to your prompts. You can pass text directly to `generateContent`.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "be337c539615"
      },
      "outputs": [],
      "source": [
        "MODEL_ID = \"gemini-2.5-flash\" # @param [\"gemini-2.5-flash-lite\", \"gemini-2.5-flash\", \"gemini-2.5-pro\",\"gemini-3-pro-preview\"] {\"allow-input\":true, isTemplate: true}"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "4eB7rHRpsw0L"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{\n",
            "  \"candidates\": [\n",
            "    {\n",
            "      \"content\": {\n",
            "        \"parts\": [\n",
            "          {\n",
            "            \"text\": \"```python\\n# Example list to be sorted\\nmy_list = [5, 3, 1, 2, 4]\\n\\n# Sort the list in ascending order using the sort() method\\nmy_list.sort()\\n\\n# Print the sorted list\\nprint(my_list)\\n```\\n\\nOutput:\\n\\n```\\n[1, 2, 3, 4, 5]\\n```\"\n",
            "          }\n",
            "        ],\n",
            "        \"role\": \"model\"\n",
            "      },\n",
            "      \"finishReason\": \"STOP\",\n",
            "      \"index\": 0,\n",
            "      \"safetyRatings\": [\n",
            "        {\n",
            "          \"category\": \"HARM_CATEGORY_SEXUALLY_EXPLICIT\",\n",
            "          \"probability\": \"NEGLIGIBLE\"\n",
            "        },\n",
            "        {\n",
            "          \"category\": \"HARM_CATEGORY_HATE_SPEECH\",\n",
            "          \"probability\": \"NEGLIGIBLE\"\n",
            "        },\n",
            "        {\n",
            "          \"category\": \"HARM_CATEGORY_HARASSMENT\",\n",
            "          \"probability\": \"NEGLIGIBLE\"\n",
            "        },\n",
            "        {\n",
            "          \"category\": \"HARM_CATEGORY_DANGEROUS_CONTENT\",\n",
            "          \"probability\": \"NEGLIGIBLE\"\n",
            "        }\n",
            "      ]\n",
            "    }\n",
            "  ],\n",
            "  \"usageMetadata\": {\n",
            "    \"promptTokenCount\": 9,\n",
            "    \"candidatesTokenCount\": 87,\n",
            "    \"totalTokenCount\": 96\n",
            "  }\n",
            "}\n"
          ]
        }
      ],
      "source": [
        "%%bash\n",
        "\n",
        "curl \"https://generativelanguage.googleapis.com/v1beta/models/${MODEL_ID}:generateContent?key=$GOOGLE_API_KEY\" \\\n",
        "    -H 'Content-Type: application/json' \\\n",
        "    -X POST \\\n",
        "    -d '{\n",
        "      \"contents\": [{\n",
        "        \"parts\":[{\"text\": \"Give me python code to sort a list.\"}]\n",
        "        }]\n",
        "       }' 2> /dev/null"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "JcvzZhMUs9q2"
      },
      "source": [
        "### Use images in your prompt\n",
        "\n",
        "Here you will download an image from a URL and pass that image in the prompt."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "NpwYp7citE4l"
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n",
            "                                 Dload  Upload   Total   Spent    Left  Speed\n",
            "\r\n",
            "  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0\r\n",
            "100  349k  100  349k    0     0  1548k      0 --:--:-- --:--:-- --:--:-- 1551k\n"
          ]
        }
      ],
      "source": [
        "%%bash\n",
        "\n",
        "curl -o image.jpg \"https://storage.googleapis.com/generativeai-downloads/images/jetpack.jpg\""
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "ucoEV-IStHsu"
      },
      "outputs": [
        {
          "data": {
            "image/jpeg": "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",
            "text/plain": [
              "<PIL.Image.Image image mode=RGB size=512x434>"
            ]
          },
          "execution_count": 5,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "import PIL.Image\n",
        "\n",
        "img = PIL.Image.open(\"image.jpg\")\n",
        "img.resize((512, int(img.height*512/img.width)))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ZZenFznXQvJF"
      },
      "source": [
        "Now you will base64 encode the image, and include it in the prompt.\n",
        "\n",
        "There are slight output differences of different base64 encoding tools, so you will need to pick the right one.\n",
        "\n",
        "The following will work in Google Colab."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "r5pKFznERak4"
      },
      "outputs": [],
      "source": [
        "%%bash\n",
        "\n",
        "echo '{\n",
        "  \"contents\":[\n",
        "    {\n",
        "      \"parts\":[\n",
        "        {\"text\": \"This image contains a sketch of a potential product along with some notes. \\\n",
        "        Given the product sketch, describe the product as thoroughly as possible based on what you \\\n",
        "        see in the image, making sure to note all of the product features. Return output in json format: \\\n",
        "        {description: description, features: [feature1, feature2, feature3, etc]}\"},\n",
        "        {\n",
        "          \"inline_data\": {\n",
        "            \"mime_type\":\"image/jpeg\",\n",
        "            \"data\": \"'$(base64 -w0 image.jpg)'\"\n",
        "          }\n",
        "        }\n",
        "      ]\n",
        "    }\n",
        "  ]\n",
        "}' > request.json"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "qFG3q7tJY2NW"
      },
      "source": [
        "Then you can include the image in the prompt by just passing in the `request.json` created to `generateContent`."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "PEXoPG37Rceo"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{\n",
            "  \"candidates\": [\n",
            "    {\n",
            "      \"content\": {\n",
            "        \"parts\": [\n",
            "          {\n",
            "            \"text\": \"```json\\n{\\n \\\"description\\\": \\\"The Jetpack Backpack is a backpack that allows the user to fly. It looks and functions like a normal backpack, but has retractable boosters that are powered by steam. The backpack has a 15-minute battery life and is charged via USB-C.  The backpack is also lightweight and has padded strap support.\\\",\\n \\\"features\\\": [\\n  \\\"retractable boosters\\\",\\n  \\\"steam-powered\\\",\\n  \\\"green/clean\\\",\\n  \\\"15-min battery life\\\",\\n  \\\"USB-C charging\\\",\\n  \\\"padded strap support\\\",\\n  \\\"lightweight\\\",\\n  \\\"looks like a normal backpack\\\",\\n  \\\"fits 18\\\\\\\" laptop\\\"\\n ]\\n}\\n```\"\n",
            "          }\n",
            "        ],\n",
            "        \"role\": \"model\"\n",
            "      },\n",
            "      \"finishReason\": \"STOP\",\n",
            "      \"index\": 0,\n",
            "      \"safetyRatings\": [\n",
            "        {\n",
            "          \"category\": \"HARM_CATEGORY_SEXUALLY_EXPLICIT\",\n",
            "          \"probability\": \"NEGLIGIBLE\"\n",
            "        },\n",
            "        {\n",
            "          \"category\": \"HARM_CATEGORY_HATE_SPEECH\",\n",
            "          \"probability\": \"NEGLIGIBLE\"\n",
            "        },\n",
            "        {\n",
            "          \"category\": \"HARM_CATEGORY_HARASSMENT\",\n",
            "          \"probability\": \"NEGLIGIBLE\"\n",
            "        },\n",
            "        {\n",
            "          \"category\": \"HARM_CATEGORY_DANGEROUS_CONTENT\",\n",
            "          \"probability\": \"NEGLIGIBLE\"\n",
            "        }\n",
            "      ]\n",
            "    }\n",
            "  ],\n",
            "  \"usageMetadata\": {\n",
            "    \"promptTokenCount\": 331,\n",
            "    \"candidatesTokenCount\": 154,\n",
            "    \"totalTokenCount\": 485\n",
            "  }\n",
            "}\n"
          ]
        },
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n",
            "                                 Dload  Upload   Total   Spent    Left  Speed\n",
            "\r\n",
            "  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0\r\n",
            "  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0\r\n",
            "100  466k    0     0  100  466k      0   298k  0:00:01  0:00:01 --:--:--  298k\r\n",
            "100  467k    0  1410  100  466k    727   240k  0:00:01  0:00:01 --:--:--  240k\n"
          ]
        }
      ],
      "source": [
        "%%bash\n",
        "\n",
        "curl \"https://generativelanguage.googleapis.com/v1beta/models/${MODEL_ID}:generateContent?key=${GOOGLE_API_KEY}\" \\\n",
        "        -H 'Content-Type: application/json' \\\n",
        "        -d @request.json"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "UjtoueAPQmMe"
      },
      "source": [
        "If you are running on a Mac, copy and paste this command into your terminal instead."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "miPi9m0eQgN8"
      },
      "source": [
        "```\n",
        "curl \"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=${GOOGLE_API_KEY}\" \\\n",
        "        -H 'Content-Type: application/json' \\\n",
        "        -d '{\n",
        "  \"contents\":[\n",
        "    {\n",
        "      \"parts\":[\n",
        "        {\"text\": \"foo\"},\n",
        "        {\n",
        "          \"inline_data\": {\n",
        "            \"mime_type\":\"image/jpeg\",\n",
        "            \"data\": \"'$(base64 -i image.jpg)'\"\n",
        "          }\n",
        "        }\n",
        "      ]\n",
        "    }\n",
        "  ]\n",
        "}'   2> /dev/null  | grep -C 5 \"text\"\n",
        "```"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "gpMssqFdNRDS"
      },
      "source": [
        "Here image is being `base64` encoded, then savie the curl request with the image data in a JSON file. Run this cell to see which version of `base64` you have. Based on the output, you may need to run this request on either a Mac or on Colab."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "nnCtnzdDO6kW"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "base64 (GNU coreutils) 8.32\n"
          ]
        }
      ],
      "source": [
        "%%bash\n",
        "\n",
        "base64 --version | head -n 1"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "rNVbculVPIyK"
      },
      "source": [
        "If you get `FreeBSD base64 ...`, (Mac) use `base64 -i`.\n",
        "\n",
        "If you get `base64 (GNU coreutils)...` (Colab) use `base64 -w0`."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "KphGNbSG4AlQ"
      },
      "source": [
        "### Have a chat\n",
        "\n",
        "The Gemini API enables you to have freeform conversations across multiple turns."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "u-ZiCr3l4sif"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "  \"candidates\": [\n",
            "    {\n",
            "      \"content\": {\n",
            "        \"parts\": [\n",
            "          {\n",
            "            \"text\": \"A computer is an electronic device that can be programmed to carry out a set of instructions. It consists of hardware, which are the physical components of the computer, and software, which are the programs that run on the computer. The hardware includes the central processing unit (CPU), which is the \\\"brain\\\" of the computer and controls all of its operations, as well as memory, storage devices, input devices (such as keyboards and mice), and output devices (such as monitors and printers). The software includes the operating system, which manages the computer's resources and provides a platform for running applications, as well as application software, which performs specific tasks for the user, such as word processing, spreadsheets, and games. When a user gives a command to the computer, the CPU fetches the appropriate instructions from memory and executes them. The results of the instructions are then stored in memory or sent to an output device. Computers are used for a wide variety of tasks, including communication, entertainment, education, and scientific research.\"\n",
            "          }\n",
            "        ],\n",
            "        \"role\": \"model\"\n",
            "      },\n",
            "      \"finishReason\": \"STOP\",\n"
          ]
        }
      ],
      "source": [
        "%%bash\n",
        "curl \"https://generativelanguage.googleapis.com/v1beta/models/${MODEL_ID}:generateContent?key=$GOOGLE_API_KEY\" \\\n",
        "    -H 'Content-Type: application/json' \\\n",
        "    -X POST \\\n",
        "    -d '{\n",
        "      \"contents\": [\n",
        "        {\"role\":\"user\",\n",
        "         \"parts\":[{\n",
        "           \"text\": \"In one sentence, explain how a computer works to a young child.\"}]},\n",
        "        {\"role\": \"model\",\n",
        "         \"parts\":[{\n",
        "           \"text\": \"A computer is like a smart helper that can store information, do math problems, and follow our instructions to make things happen.\"}]},\n",
        "        {\"role\": \"user\",\n",
        "         \"parts\":[{\n",
        "           \"text\": \"Okay, how about a more detailed explanation to a high schooler?\"}]},\n",
        "      ]\n",
        "    }' 2> /dev/null | grep -C 5 \"text\""
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "OCpQfq4H5pYH"
      },
      "source": [
        "### Configuration\n",
        "\n",
        "Every prompt you send to the model includes parameter values that control how the model generates a response. The model can generate different results for different parameter values. Learn more about [model parameters](https://ai.google.dev/docs/concepts#model_parameters).\n",
        "\n",
        "For instance, `temperature` controls the degree of randomness in token selection. Use higher values for more creative responses, and lower values for more deterministic responses.\n",
        "\n",
        "The following example specifies values for all the parameters of the `generateContent` method."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "2dur4CGN6iXj"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "            \"text\": \"1. Cats have 32 muscles in their ears, allowing them to rotate them 180 degrees.\\n2. The average lifespan of a domestic cat is 12-15 years.\\n3. Cats have five toes on their front paws and four on their back paws.\\n4. A group of cats is called a clowder or a glaring.\\n5. Cats have a keen sense of smell, with approximately 200 million scent receptors in their noses.\\n6. Cats are obligate carnivores, meaning they must eat meat to survive.\\n7. The domestication of cats began around 9,000 years ago in the Middle East.\\n8. Cats have a unique organ called the Jacobson's organ, which helps them detect scents and pheromones.\\n9. Cats can purr at a frequency of 25-150 hertz, which is believed to have therapeutic effects.\\n10. The world's smallest cat breed is the Singapura, which weighs around 4-8 pounds.\"\n"
          ]
        }
      ],
      "source": [
        "%%bash\n",
        "\n",
        "curl \"https://generativelanguage.googleapis.com/v1beta/models/${MODEL_ID}:generateContent?key=$GOOGLE_API_KEY\" \\\n",
        "    -H 'Content-Type: application/json' \\\n",
        "    -X POST \\\n",
        "    -d '{\n",
        "        \"contents\": [{\n",
        "            \"parts\":[\n",
        "                {\"text\": \"Give me a numbered list of cat facts.\"}\n",
        "            ]\n",
        "        }],\n",
        "        \"safetySettings\": [\n",
        "            {\n",
        "                \"category\": \"HARM_CATEGORY_DANGEROUS_CONTENT\",\n",
        "                \"threshold\": \"BLOCK_ONLY_HIGH\"\n",
        "            }\n",
        "        ],\n",
        "        \"generationConfig\": {\n",
        "            \"stopSequences\": [\n",
        "                \"Title\"\n",
        "            ],\n",
        "            \"temperature\": 0.9,\n",
        "            \"maxOutputTokens\": 2000,\n",
        "        }\n",
        "    }'  2> /dev/null | grep \"text\""
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "pCS37WdchZiZ"
      },
      "source": [
        "## Next steps\n",
        "\n",
        "The Gemini API has configurable safety settings. Learn more [here](https://github.com/google-gemini/cookbook/blob/main/quickstarts/rest/Safety_REST.ipynb)."
      ]
    }
  ],
  "metadata": {
    "colab": {
      "name": "Prompting_REST.ipynb",
      "toc_visible": true
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}
